package com.cyufeng.blog.controller;

import com.cyufeng.blog.dto.AccountDto;
import com.cyufeng.blog.service.AccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;

/**
 * 登录
 *
 * @author Cyufeng
 * Data:2018.12.30
 */
@CrossOrigin
@RequestMapping("/blog/account")
@RestController
public class AccountController {
    @Autowired
    AccountService loginService;

    /**
     * 登录管理员
     *
     * @param username
     * @param password
     * @return 登录成功返回有数据的dto，不成功返回空的dto
     */
    @GetMapping("/login")
    public AccountDto login(@RequestParam("username") String username, @RequestParam("password") String password, HttpSession session) {
        AccountDto loginDto = new AccountDto();
        loginDto = loginService.getUser(username, password);
        session.setAttribute("loginUser",username);//将登陆成功的用户名保存在session
        return loginDto;
    }

    /**
     * 得到所有账户信息
     *
     * @return
     */
    @GetMapping("/getAllAccount")
    public List<AccountDto> getAllAccount( @RequestParam("isEnable") int isEnable) {
        List<AccountDto> loginDto = new ArrayList<>();
        loginDto = loginService.getAllAccount(isEnable);
        return loginDto;
    }

    /**
     * 改变是否启用
     *
     * @return
     */
    @GetMapping("/setIsEnable")
    public String setIsEnable(@RequestParam("isEnable") Boolean isEnable, @RequestParam("id") int id) {
        return loginService.setIsEnbale(isEnable, id);
    }

    /**
     * 保存修改
     *
     * @return
     */
    @GetMapping("/saveEdit")
    public String setIsEnable(@RequestParam("passwd") String passwd, @RequestParam("id") int id) {

        return loginService.saveEdit(passwd, id);
    }

    /**
     * 删除用户
     *
     * @return
     */
    @GetMapping("/deleteUser")
    public String deleteUser(@RequestParam("id") int id) {

        return loginService.deleteUser(id);
    }

    /**
     * 保存新用户
     *
     * @return
     */
    @PostMapping("/saveUser")
    public String saveUser(@RequestBody AccountDto accountDto) {

        return loginService.saveUser(accountDto);
    }
}
